package se.webbzon.boltzmann.battle.strategy.playerstrategy;

import java.awt.Font;
import java.awt.Image;

import se.webbzon.boltzmann.hud.AbstractHudLayout;

public class PSIconPageLayout extends AbstractHudLayout {
	
	// The radius of the icons
	private final double iconRadius;
	
	// The offset of the icon in the background
	private final int iconXOffset, iconYOffset;
	
	// The background of the icons
	private final Image iconBackgroundImage;
	
	// The offset of the background
	private final int backgroundXOffset, backgroundYOffset;
	
	// The horizontal spacing and vertical offset of the icon text
	private final int textXSpacing, textYOffset;
	
	// The font used for the icon text
	private final Font textFont;
	
	/*============================================================
	Constructors
	============================================================*/
	
	/** Creates a new player strategy icon page layout for the player 
	 * strategy heads-up display. **/
	public PSIconPageLayout(double iconRadius,
							int iconXOffset, int iconYOffset,
							int backgroundXOffset, 
							int backgroundYOffset,
							int textXSpacing, int textYOffset,
							Font textFont,
							Image iconBackgroundImage) {
		this.iconRadius = iconRadius;
		this.iconXOffset = iconXOffset;
		this.iconYOffset = iconYOffset;
		this.backgroundXOffset = backgroundXOffset;
		this.backgroundYOffset = backgroundYOffset;
		this.textXSpacing = textXSpacing;
		this.textYOffset = textYOffset;
		this.textFont = textFont;
		this.iconBackgroundImage = iconBackgroundImage;
	}
	
	/*============================================================
	Public Methods
	============================================================*/
	
	/** Returns the radius of the icons. **/
	public double getIconRadius() {
		return iconRadius;
	}

	/** Returns the horizontal offset of the icon within the icon background.  **/
	public int getIconXOffset() {
		return iconXOffset;
	}

	/** Returns the vertical offset of the icon within the icon background.  **/
	public int getIconYOffset() {
		return iconYOffset;
	}

	/** Returns the icon background image. **/
	public Image getIconBackgroundImage() {
		return iconBackgroundImage;
	}

	/** Returns the horizontal offset of the background.  **/
	public int getBackgroundXOffset() {
		return backgroundXOffset;
	}

	/** Returns the vertical offset of the background.  **/
	public int getBackgroundYOffset() {
		return backgroundYOffset;
	}

	/** Returns the horizontal spacing between the icon background and
	 * the icon text.  **/
	public int getTextXSpacing() {
		return textXSpacing;
	}

	/** Returns the vertical offset of the icon text relative to the 
	 * icon background. **/
	public int getTextYOffset() {
		return textYOffset;
	}
	
	/** Returns the font used for the icon text. **/
	public Font getTextFont() {
		return textFont;
	}

}
